// 爱情配置文件
export const loveConfig = {
  // 基本信息
  boy: {
    name: 'XXX', // 男方名字
    birthday: '2001-10-10', // 男方生日 (YYYY-MM-DD)
    zodiac: '', // 星座（自动计算）
    age: 0, // 年龄（自动计算）
    description: '温柔体贴的男孩'
  },
  
  girl: {
    name: 'XXX', // 女方名字
    birthday: '2002-04-11', // 女方生日 (YYYY-MM-DD)
    zodiac: '', // 星座（自动计算）
    age: 0, // 年龄（自动计算）
    description: '美丽善良的女孩'
  },
  
  // 恋爱信息
  love: {
    startDate: '2025-05-21', // 相爱日期
    days: 0, // 恋爱天数（自动计算）
    description: '我们的爱情故事'
  },
  
  // 甜蜜图片集合
  photos: [
    {
      id: 1,
      url: 'https://images.unsplash.com/photo-1518199266791-5375a83190b7?w=400&h=300&fit=crop',
      title: '第一次约会',
      date: '2024-01-15',
      description: '在咖啡厅的第一次约会'
    },
    {
      id: 2,
      url: 'https://images.unsplash.com/photo-1529333166437-7750a6dd5a70?w=400&h=300&fit=crop',
      title: '情人节',
      date: '2024-02-14',
      description: '浪漫的情人节'
    },
    {
      id: 3,
      url: 'https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=400&h=300&fit=crop',
      title: '海边旅行',
      date: '2024-03-20',
      description: '美丽的海边日落'
    },
    {
      id: 4,
      url: 'https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?w=400&h=300&fit=crop',
      title: '生日派对',
      date: '2024-04-22',
      description: '难忘的生日庆祝'
    },
    {
      id: 5,
      url: 'https://images.unsplash.com/photo-1518199266791-5375a83190b7?w=400&h=300&fit=crop',
      title: '公园散步',
      date: '2024-05-10',
      description: '春日的浪漫散步'
    },
    {
      id: 6,
      url: 'https://images.unsplash.com/photo-1529333166437-7750a6dd5a70?w=400&h=300&fit=crop',
      title: '音乐会',
      date: '2024-06-01',
      description: '一起欣赏美妙的音乐'
    }
  ],
  
  // 重要日期
  importantDates: [
    {
      id: 1,
      title: '第一次相遇',
      date: '2024-01-01',
      description: '在咖啡厅的美丽邂逅',
      icon: '☕'
    },
    {
      id: 2,
      title: '第一次牵手',
      date: '2024-01-15',
      description: '在公园里第一次牵起手',
      icon: '💕'
    },
    {
      id: 3,
      title: '第一个吻',
      date: '2024-02-14',
      description: '在星空下的第一个吻',
      icon: '💋'
    },
    {
      id: 4,
      title: '第一次旅行',
      date: '2024-03-20',
      description: '一起去看海',
      icon: '🌊'
    },
    {
      id: 5,
      title: '见家长',
      date: '2024-05-01',
      description: '紧张又兴奋的一天',
      icon: '👨‍👩‍👧‍👦'
    }
  ],
  
  // 星座匹配信息
  zodiac: {
    compatibility: 0, // 星座匹配度（自动计算）
    description: '', // 星座匹配描述（自动生成）
    traits: {
      boy: [], // 男方星座特质（自动生成）
      girl: [] // 女方星座特质（自动生成）
    }
  },
  
  // 爱情誓言
  vows: [
    '我会用一生的时间来爱你',
    '无论贫穷还是富有，我都会陪在你身边',
    '我会让你成为世界上最幸福的人',
    '我们的爱情会像钻石一样永恒',
    '你是我生命中最重要的人'
  ],
  
  // 未来计划
  futurePlans: [
    {
      icon: '🏠',
      title: '温馨的家',
      description: '我们一起布置属于我们的小窝'
    },
    {
      icon: '👶',
      title: '可爱的孩子',
      description: '期待我们的小天使降临'
    },
    {
      icon: '🌍',
      title: '环游世界',
      description: '一起探索世界的美好'
    },
    {
      icon: '👴👵',
      title: '白头偕老',
      description: '携手走过人生的每一个阶段'
    }
  ]
}

// 工具函数
export const loveUtils = {
  // 计算恋爱天数
  getLoveDays() {
    const startDate = new Date(loveConfig.love.startDate)
    const now = new Date()
    const diffTime = Math.abs(now - startDate)
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
    return diffDays
  },
  
  // 计算年龄
  getAge(birthday) {
    const birthDate = new Date(birthday)
    const now = new Date()
    let age = now.getFullYear() - birthDate.getFullYear()
    const monthDiff = now.getMonth() - birthDate.getMonth()
    
    if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < birthDate.getDate())) {
      age--
    }
    return age
  },
  
  // 获取星座
  getZodiac(birthday) {
    const date = new Date(birthday)
    const month = date.getMonth() + 1
    const day = date.getDate()
    
    const zodiacSigns = [
      { name: '摩羯座', startMonth: 12, startDay: 22, endMonth: 1, endDay: 19 },
      { name: '水瓶座', startMonth: 1, startDay: 20, endMonth: 2, endDay: 18 },
      { name: '双鱼座', startMonth: 2, startDay: 19, endMonth: 3, endDay: 20 },
      { name: '白羊座', startMonth: 3, startDay: 21, endMonth: 4, endDay: 19 },
      { name: '金牛座', startMonth: 4, startDay: 20, endMonth: 5, endDay: 20 },
      { name: '双子座', startMonth: 5, startDay: 21, endMonth: 6, endDay: 21 },
      { name: '巨蟹座', startMonth: 6, startDay: 22, endMonth: 7, endDay: 22 },
      { name: '狮子座', startMonth: 7, startDay: 23, endMonth: 8, endDay: 22 },
      { name: '处女座', startMonth: 8, startDay: 23, endMonth: 9, endDay: 22 },
      { name: '天秤座', startMonth: 9, startDay: 23, endMonth: 10, endDay: 23 },
      { name: '天蝎座', startMonth: 10, startDay: 24, endMonth: 11, endDay: 22 },
      { name: '射手座', startMonth: 11, startDay: 23, endMonth: 12, endDay: 21 }
    ]
    
    for (const sign of zodiacSigns) {
      if (month === sign.startMonth && day >= sign.startDay) {
        return sign.name
      }
      if (month === sign.endMonth && day <= sign.endDay) {
        return sign.name
      }
    }
    
    return '未知'
  },
  
  // 格式化日期
  formatDate(dateString) {
    const date = new Date(dateString)
    return date.toLocaleDateString('zh-CN', {
      year: 'numeric',
      month: 'long',
      day: 'numeric'
    })
  },
  
  // 计算距离下一个生日的天数
  getDaysToBirthday(birthday) {
    const today = new Date()
    const birthDate = new Date(birthday)
    const nextBirthday = new Date(today.getFullYear(), birthDate.getMonth(), birthDate.getDate())
    
    if (nextBirthday < today) {
      nextBirthday.setFullYear(today.getFullYear() + 1)
    }
    
    const diffTime = nextBirthday - today
    return Math.ceil(diffTime / (1000 * 60 * 60 * 24))
  },
  
  // 获取星座特质
  getZodiacTraits(zodiac) {
    const traits = {
      '白羊座': ['热情', '勇敢', '冲动', '领导力强'],
      '金牛座': ['稳重', '务实', '固执', '有耐心'],
      '双子座': ['聪明', '好奇', '善变', '沟通能力强'],
      '巨蟹座': ['敏感', '家庭观念强', '保护欲强', '情感丰富'],
      '狮子座': ['热情', '自信', '慷慨', '有领导力'],
      '处女座': ['完美主义', '细心', '理性', '服务精神强'],
      '天秤座': ['优雅', '公正', '犹豫不决', '追求和谐'],
      '天蝎座': ['神秘', '洞察力强', '占有欲强', '意志坚定'],
      '射手座': ['乐观', '自由', '冒险', '哲学思维'],
      '摩羯座': ['务实', '野心', '责任感强', '有耐心'],
      '水瓶座': ['创新', '独立', '人道主义', '理性'],
      '双鱼座': ['浪漫', '体贴', '有想象力', '敏感']
    }
    return traits[zodiac] || ['未知特质']
  },
  
  // 计算星座匹配度
  getZodiacCompatibility(zodiac1, zodiac2) {
    const compatibilityMatrix = {
      '白羊座': { '白羊座': 85, '金牛座': 70, '双子座': 90, '巨蟹座': 65, '狮子座': 95, '处女座': 75, '天秤座': 80, '天蝎座': 70, '射手座': 95, '摩羯座': 65, '水瓶座': 85, '双鱼座': 70 },
      '金牛座': { '白羊座': 70, '金牛座': 90, '双子座': 65, '巨蟹座': 95, '狮子座': 70, '处女座': 95, '天秤座': 75, '天蝎座': 85, '射手座': 65, '摩羯座': 95, '水瓶座': 70, '双鱼座': 90 },
      '双子座': { '白羊座': 90, '金牛座': 65, '双子座': 85, '巨蟹座': 70, '狮子座': 85, '处女座': 75, '天秤座': 95, '天蝎座': 70, '射手座': 90, '摩羯座': 65, '水瓶座': 95, '双鱼座': 70 },
      '巨蟹座': { '白羊座': 65, '金牛座': 95, '双子座': 70, '巨蟹座': 90, '狮子座': 70, '处女座': 85, '天秤座': 70, '天蝎座': 95, '射手座': 65, '摩羯座': 85, '水瓶座': 70, '双鱼座': 95 },
      '狮子座': { '白羊座': 95, '金牛座': 70, '双子座': 85, '巨蟹座': 70, '狮子座': 85, '处女座': 70, '天秤座': 90, '天蝎座': 75, '射手座': 95, '摩羯座': 70, '水瓶座': 80, '双鱼座': 75 },
      '处女座': { '白羊座': 75, '金牛座': 95, '双子座': 75, '巨蟹座': 85, '狮子座': 70, '处女座': 90, '天秤座': 85, '天蝎座': 90, '射手座': 70, '摩羯座': 95, '水瓶座': 75, '双鱼座': 85 },
      '天秤座': { '白羊座': 80, '金牛座': 75, '双子座': 95, '巨蟹座': 70, '狮子座': 90, '处女座': 85, '天秤座': 85, '天蝎座': 75, '射手座': 85, '摩羯座': 75, '水瓶座': 90, '双鱼座': 80 },
      '天蝎座': { '白羊座': 70, '金牛座': 85, '双子座': 70, '巨蟹座': 95, '狮子座': 75, '处女座': 90, '天秤座': 75, '天蝎座': 90, '射手座': 70, '摩羯座': 90, '水瓶座': 70, '双鱼座': 95 },
      '射手座': { '白羊座': 95, '金牛座': 65, '双子座': 90, '巨蟹座': 65, '狮子座': 95, '处女座': 70, '天秤座': 85, '天蝎座': 70, '射手座': 85, '摩羯座': 65, '水瓶座': 90, '双鱼座': 70 },
      '摩羯座': { '白羊座': 65, '金牛座': 95, '双子座': 65, '巨蟹座': 85, '狮子座': 70, '处女座': 95, '天秤座': 75, '天蝎座': 90, '射手座': 65, '摩羯座': 90, '水瓶座': 70, '双鱼座': 85 },
      '水瓶座': { '白羊座': 85, '金牛座': 70, '双子座': 95, '巨蟹座': 70, '狮子座': 80, '处女座': 75, '天秤座': 90, '天蝎座': 70, '射手座': 90, '摩羯座': 70, '水瓶座': 85, '双鱼座': 75 },
      '双鱼座': { '白羊座': 70, '金牛座': 90, '双子座': 70, '巨蟹座': 95, '狮子座': 75, '处女座': 85, '天秤座': 80, '天蝎座': 95, '射手座': 70, '摩羯座': 85, '水瓶座': 75, '双鱼座': 90 }
    }
    
    const score = compatibilityMatrix[zodiac1]?.[zodiac2] || 75
    return score
  },
  
  // 生成星座匹配描述
  getZodiacDescription(zodiac1, zodiac2, compatibility) {
    const descriptions = {
      '95-100': `${zodiac1}和${zodiac2}的组合简直是天作之合！你们的性格完美互补，能够激发出彼此最好的一面。`,
      '90-94': `${zodiac1}和${zodiac2}是非常般配的组合，你们有着深厚的缘分和默契。`,
      '85-89': `${zodiac1}和${zodiac2}的组合很有潜力，你们能够很好地理解和支持彼此。`,
      '80-84': `${zodiac1}和${zodiac2}的组合相当不错，只要用心经营，你们的感情会越来越深。`,
      '75-79': `${zodiac1}和${zodiac2}的组合需要一些努力，但通过沟通和理解，你们可以建立美好的关系。`,
      '70-74': `${zodiac1}和${zodiac2}的组合有一定挑战，但只要相互包容，你们也能创造属于自己的幸福。`,
      '0-69': `${zodiac1}和${zodiac2}的组合需要更多的理解和包容，真爱可以超越星座的差异。`
    }
    
    for (const [range, desc] of Object.entries(descriptions)) {
      const [min, max] = range.split('-').map(Number)
      if (compatibility >= min && compatibility <= max) {
        return desc
      }
    }
    
    return `${zodiac1}和${zodiac2}的组合很特别，每一对情侣都是独一无二的。`
  }
}

// 更新配置中的动态数据
export function updateConfig() {
  loveConfig.love.days = loveUtils.getLoveDays()
  
  // 自动计算年龄
  loveConfig.boy.age = loveUtils.getAge(loveConfig.boy.birthday)
  loveConfig.girl.age = loveUtils.getAge(loveConfig.girl.birthday)
  
  // 自动计算星座
  loveConfig.boy.zodiac = loveUtils.getZodiac(loveConfig.boy.birthday)
  loveConfig.girl.zodiac = loveUtils.getZodiac(loveConfig.girl.birthday)
  
  // 自动计算星座匹配信息
  if (loveConfig.boy.zodiac && loveConfig.girl.zodiac) {
    loveConfig.zodiac.compatibility = loveUtils.getZodiacCompatibility(loveConfig.boy.zodiac, loveConfig.girl.zodiac)
    loveConfig.zodiac.description = loveUtils.getZodiacDescription(loveConfig.boy.zodiac, loveConfig.girl.zodiac, loveConfig.zodiac.compatibility)
    loveConfig.zodiac.traits.boy = loveUtils.getZodiacTraits(loveConfig.boy.zodiac)
    loveConfig.zodiac.traits.girl = loveUtils.getZodiacTraits(loveConfig.girl.zodiac)
  }
}
